Texas Beer award analysis

Column

City medal comparison

Brewery medal comparison

Column

Brewery medals won by beer type

Top two beer enteries from Texas

US beer award analysis

column

US top 5 brewries with most medals

Brewery medals won by beer type

beer types

Interactive US map

column

beer types

map

---
title: "Great American Beer Festival Analysis"
author: "Thilini Vithanage, Shradhda Kaki, Sepand Gousheh"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    social: menu
    source_code: embed
---
```{r setup, include=FALSE}
library(flexdashboard)
library(tidyverse)
library(scales)
library(ggspatial)
library(lubridate)
library(sf)
library(viridis)
library(urbnmapr)
library(animation)
library(tidytext)
library(proto)
library(gsubfn)
library(RSQLite)
library(sqldf)
library(gganimate)
library(plotly)
library(maps)
library(tmap)
library(leaflet)
library(tidylo)
library(dbplyr)
library(ggmap)

#loading the data 
beer_awards <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-10-20/beer_awards.csv')

#giving the right order to medals
beer_awards$medal <- factor(beer_awards$medal, 
                           c("Gold", "Silver", "Bronze"),
                           levels = c("Gold", "Silver", "Bronze"),
                           ordered = TRUE)
#### Adding a new variable "new_cat" a more general category based on beer categories ####
beer_awards$category <- tolower(beer_awards$category)

gen_cat <- function(x){
  ifelse(str_detect(x,'india pale ale'),'India pale ale',
         ifelse(str_detect(x,'impe'),'Imperial',
                ifelse(str_detect(x,'pale ale'),'Pale ale',
                       ifelse(str_detect(x,'stout'),'Stouts',
                              ifelse(str_detect(x,'lager'),'Lager',
                                     ifelse(str_detect(x,'pils'),'Pilsner', 
                                            ifelse((str_detect(x,'fruit beer'))|(str_detect(x,'ras')),'Fruit beer',
                                                   ifelse(str_detect(x,'hefeweizen'),'Wheat beer',
                                                          ifelse(str_detect(x,'witbier'),'Wheat beer',
                                                                 ifelse(str_detect(x,'weizen'),'Wheat beer',
                                                                        ifelse((!str_detect(x,'india pale ale') | !str_detect(x,'pale ale'))&
                                                                                 (str_detect(x,'ale')),'Other ale',
                                                                               ifelse(str_detect(x,'wheat'),'Wheat beer',
                                                                                      ifelse(str_detect(x,'bock'),'Bock',
                                                                                             ifelse(str_detect(x,'porte'),'Porter',
                                                                                                    ifelse(str_detect(x,'bitter'),'Bitter','Other'
                                                                                      )))))))))))))))
}
#adding the new category to dataframe
beer_awards <- beer_awards %>% rowwise() %>% mutate(new_cat = gen_cat(category))

#### Filtering for only Texas dataframe ####
texas_beer <- beer_awards %>% filter(state == 'TX')

#finding the top 8 breweries
texas_brewery <- sqldf("select brewery,count(*) as n
                       from beer_awards
                       where state = 'TX'
                       group by brewery
                       order by n desc
                       limit 8") 

texas_brewery <- unique(texas_brewery$brewery)
#
texas_beer$brewery <- factor(texas_beer$brewery, levels = texas_brewery)
#creating a states sf object for ploting ggplot objects from urbnmapr package
states_sf <- get_urbn_map("states", sf = TRUE)
```


Texas Beer award analysis
=======

Column {.tabset}
-----------------------------------------------------------------------

### City medal comparison 

```{r,fig.height= 10,fig.width= 8}
#looking at what cities in Texas won the most medals
plot1 <- texas_beer %>% 
  group_by(medal,city) %>% 
  count(medal) %>% 
  ggplot(aes(x =reorder_within(city,n,medal),y=n,width=0.75)) + 
  geom_bar(stat = 'identity',aes(fill=medal)) +
  scale_fill_manual(values=c('Gold'="#FFCC33", 'Silver'="#999999",'Bronze'= "#CC6600")) +
  labs(title = "Great American Beer Festival Medal Winner Analysis (1987-2020)", 
       subtitle = "Texas Edition",
       x ='Brewery city',
       y = "Number of Medal Awards",
       caption = "source = Great American Beer Festival \nGraph by @wjtorres\nEdited by group 3",
       fill = 'Medal') +
  theme_minimal() +
  theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    axis.text = element_text(size = 10),
    axis.title = element_text(size = 8),
    plot.caption = element_text( size = 8),
    plot.title = element_text(size = 14),
    plot.subtitle = element_text(size = 12),
    legend.title = element_text(size = 12),
    legend.text = element_text(size = 8),
    axis.line.x = element_line(size = 0.5, linetype = "solid", colour = "black"),
    axis.line.y = element_line(size = 0.5, linetype = "solid", colour = "black"),
    plot.background = element_rect(fill = "#ffffff"),
    axis.title.x = element_text(size =12,face='bold'),
    axis.title.y = element_text(size =12,face='bold'),
    strip.text.y = element_blank()
    ) +
  coord_flip()+
  facet_grid(medal~.,scales = "free")+
  scale_x_reordered()+
  scale_y_continuous(breaks = seq(0,30,by = 5))
plot1
```

### Brewery medal comparison 
```{r,fig.height= 10,fig.width= 9}
#brewery medal comparison
plot2 <- texas_beer %>% filter(brewery %in% texas_brewery) %>% 
  group_by(medal,brewery) %>% 
  count(medal) %>%
  ggplot(aes(x =reorder_within(brewery,n,medal),y=n,width=0.75)) + 
  geom_bar(stat = 'identity',aes(fill=medal)) +
  scale_fill_manual(values=c('Gold'="#FFCC33", 'Silver'="#999999",'Bronze'= "#CC6600")) +
  labs(title = "Great American Beer Festival Medal Winner Analysis (1987-2020)", 
       subtitle = "Texas Edition",
       x ='Brewery name',
       y = "Number of Medal Awards",
       caption = "source = Great American Beer Festival",
       fill = 'Medal') +
  theme_minimal() +
  theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    axis.text = element_text(size = 10),
    axis.title = element_text(size = 8),
    plot.caption = element_text( size = 8),
    plot.title = element_text(size = 14),
    plot.subtitle = element_text(size = 12),
    legend.title = element_text(size = 12),
    legend.text = element_text(size = 8),
    axis.line.x = element_line(size = 0.5, linetype = "solid", colour = "black"),
    axis.line.y = element_line(size = 0.5, linetype = "solid", colour = "black"),
    plot.background = element_rect(fill = "#ffffff"),
    axis.title.x = element_text(size =12,face='bold'),
    axis.title.y = element_text(size =12,face='bold'),
    strip.text.y = element_blank()) +
  coord_flip()+
  facet_grid(medal~.,scales = "free")+
  scale_x_reordered()+
  scale_y_continuous(breaks = seq(0,30,by = 5))

plot2
```

Column
-----------------------------------------------------------------------

### Brewery medals won by beer type

```{r,fig.width=9}
plot4<- texas_beer %>% filter(brewery %in% texas_brewery[1:4]) %>% group_by(brewery,medal,new_cat) %>% count(medal) %>%  
  ggplot(aes(x=new_cat,y=n))+
  coord_flip()+
  facet_wrap(~brewery,scales = 'free')+
  geom_col(aes(fill=medal),position = position_dodge2(preserve = "single"))+
  scale_fill_manual(values=c('Gold'="#FFCC33", 'Silver'="#999999",'Bronze'= "#CC6600"))+
  labs(title = "Texas top 4 breweries and awards based on beer type (1987-2020)",
       y='Number of awards',x='Beer type',fill='Medals won',
       caption = "source = Great American Beer Festival")+
  theme_classic()+
  theme(strip.text.x = element_text(size = 12,face = 'bold'),
        plot.title = element_text(size = 14),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        axis.text = element_text(size = 10),
        axis.title = element_text(size = 8),
        plot.caption = element_text( size = 8),
        plot.subtitle = element_text(size = 12),
        legend.title = element_text(size = 12),
        legend.text = element_text(size = 8),
        axis.line.x = element_line(size = 0.5, linetype = "solid", colour = "black"),
        axis.line.y = element_line(size = 0.5, linetype = "solid", colour = "black"),
        plot.background = element_rect(fill = "#ffffff"),
        axis.title.x = element_text(size =12,face='bold'),
        axis.title.y = element_text(size =12,face='bold'))

plot4
```

### Top two beer enteries from Texas

```{r,fig.width=9}
plot6.1<- beer_awards %>% filter(new_cat != 'Other' & state == 'TX' &
                                   new_cat %in% c('Lager','Other ale'))%>% group_by(year,new_cat) %>% count(new_cat)%>% 
  ggplot(aes(x=year,y=n))+geom_bar(stat = 'identity',aes(fill=new_cat))+facet_wrap(~new_cat)+
  scale_x_continuous(breaks = seq(1980,2020,by = 5))+
  labs(title = "Texas most awarded beer styles (1987-2020)",
       y='Number of awards won',x=element_blank(),
       caption = "source = Great American Beer Festival")+
  theme_classic()+
  theme(strip.text.x = element_text(size = 12,face = 'bold'),
        plot.title = element_text(size = 14),
        legend.position = "none",
        panel.spacing = unit(1.5, "lines"),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        axis.text = element_text(size = 10),
        axis.title = element_text(size = 8),
        plot.caption = element_text( size = 8),
        plot.subtitle = element_text(size = 12),
        legend.title = element_text(size = 12),
        legend.text = element_text(size = 8),
        axis.line.x = element_line(size = 0.5, linetype = "solid", colour = "black"),
        axis.line.y = element_line(size = 0.5, linetype = "solid", colour = "black"),
        plot.background = element_rect(fill = "#ffffff"),
        axis.title.x = element_text(size =12,face='bold'),
        axis.title.y = element_text(size =12,face='bold'))


plot6.1
  
```


US beer award analysis 
===================

```{r,include= FALSE}
us_brewery <- sqldf("select brewery,count(*) as n
                       from beer_awards
                       group by brewery
                       order by n desc
                       limit 5") 

us_brewery <- unique(us_brewery$brewery)
#
us_beer_select <- beer_awards %>% filter(brewery %in% us_brewery)

us_beer_select$brewery <- factor(us_beer_select$brewery, levels = us_brewery)
```

```{r,echo=FALSE,include=FALSE}
states_sf <- get_urbn_map("states", sf = TRUE)

temp <- beer_awards %>% group_by(state,new_cat,medal) %>% count(medal)

temp1 <- inner_join(states_sf,temp,by=c('state_abbv'='state'))

df_plot <- temp1 %>% filter((new_cat %in% c('Lager','Stouts','Pale ale','Pilsner','Wheat beer','India pale ale')))
rm(temp,temp1)

temp <- beer_awards %>% group_by(state,new_cat) %>% count(new_cat)

temp1 <- inner_join(states_sf,temp,by=c('state_abbv'='state'))

df_plot1 <- temp1 %>% filter((new_cat %in% c('Lager','Stouts','Pale ale','Pilsner','Wheat beer','India pale ale')))
rm(temp,temp1)
```

column {.tabset}
------------
### US top 5 brewries with most medals

```{r,fig.height= 10,fig.width= 8}
#brewery medal comparison
plot12 <- us_beer_select %>% 
  group_by(medal,brewery) %>% 
  count(medal) %>%
  ggplot(aes(x =reorder_within(brewery,n,medal),y=n,width=0.75)) + 
  geom_bar(stat = 'identity',aes(fill=medal)) +
  scale_fill_manual(values=c('Gold'="#FFCC33", 'Silver'="#999999",'Bronze'= "#CC6600")) +
  labs(title = "Top 5 US by total medals won (1987-2020)", 
       subtitle = "Texas Edition",
       x ='Brewery name',
       y = "Number of Medal Awards",
       caption = "source = Great American Beer Festival",
       fill = 'Medal') +
  theme_minimal() +
  theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    axis.text = element_text(size = 10),
    axis.title = element_text(size = 8),
    plot.caption = element_text( size = 8),
    plot.title = element_text(size = 14),
    plot.subtitle = element_text(size = 12),
    legend.title = element_text(size = 12),
    legend.text = element_text(size = 8),
    axis.line.x = element_line(size = 0.5, linetype = "solid", colour = "black"),
    axis.line.y = element_line(size = 0.5, linetype = "solid", colour = "black"),
    plot.background = element_rect(fill = "#ffffff"),
    axis.title.x = element_text(size =12,face='bold'),
    axis.title.y = element_text(size =12,face='bold'),
    strip.text.y = element_blank()) +
  coord_flip()+
  facet_grid(medal~.,scales = "free")+
  scale_x_reordered()+
  scale_y_continuous(breaks = seq(0,30,by = 5))

plot12
```


### Brewery medals won by beer type

```{r,fig.height= 8,fig.width= 10}
plot14<- us_beer_select %>% group_by(brewery,medal,new_cat) %>% count(medal) %>%  
  ggplot(aes(x=new_cat,y=n))+
  coord_flip()+
  facet_wrap(~brewery,scales = 'free')+
  geom_col(aes(fill=medal),position = position_dodge2(preserve = "single"))+
  scale_fill_manual(values=c('Gold'="#FFCC33", 'Silver'="#999999",'Bronze'= "#CC6600"))+
  labs(title = "US top 5 breweries and awards based on beer type (1987-2020)",
       y='Number of awards',x='Beer type',fill='Medals won',
       caption = "source = Great American Beer Festival")+
  theme_classic()+
  theme(strip.text.x = element_text(size = 12,face = 'bold'),
        plot.title = element_text(size = 14),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        axis.text = element_text(size = 10),
        axis.title = element_text(size = 8),
        plot.caption = element_text( size = 8),
        plot.subtitle = element_text(size = 12),
        legend.title = element_text(size = 12),
        legend.text = element_text(size = 8),
        axis.line.x = element_line(size = 0.5, linetype = "solid", colour = "black"),
        axis.line.y = element_line(size = 0.5, linetype = "solid", colour = "black"),
        plot.background = element_rect(fill = "#ffffff"),
        axis.title.x = element_text(size =12,face='bold'),
        axis.title.y = element_text(size =12,face='bold'))

plot14
```


### beer types

```{r,fig.height= 10,fig.width= 10}
plot5<- beer_awards %>% filter(new_cat != 'Other')%>% group_by(year,new_cat) %>% count(new_cat)%>% 
  ggplot(aes(x=year,y=n))+geom_bar(stat = 'identity',aes(fill=new_cat))+facet_wrap(~new_cat,scale='free',ncol = 3)+
  scale_x_continuous(breaks = seq(1980,2020,by = 5))+
  labs(title = "General beer styles based on total number of medals won (1987-2020)",
       y='Number of awards',x=element_blank(),
       caption = "source = Great American Beer Festival")+
  theme_classic()+
  theme(strip.text.x = element_text(size = 12,face = 'bold'),
        plot.title = element_text(size = 14),
        legend.position = "none")

plot5
```

### Interactive US map

```{r}
### load map from library
temp <- beer_awards
temp$STATE<-toupper(temp$state)
temp$state<-NULL

### counting most occurring beers in the state using tidylo library
new_beerlabel <- sqldf("select state,new_cat,count(*)as n
           from beer_awards
           where new_cat != 'Other'
           group by state,new_cat")


new_beerlabel %>% group_by(state) %>%
  mutate(my_ranks = order(order(n, decreasing=TRUE))) -> new_beerlabel
 
new_beerlabel <- new_beerlabel %>% filter(my_ranks == 1) %>% select(state,new_cat)

colnames(new_beerlabel) <- c('STATE','beer')
 
 # count of total medals state wise
total_medal <- sqldf("select state as STATE,count(*) as n
                     from beer_awards
                     group by state")
 
 
 # adding map elements
 Us_map<-get_urbn_map("states",sf=TRUE)

 new_map<-inner_join(Us_map,new_beerlabel,by=c('state_abbv'='STATE'))
 new_map<-inner_join(new_map,total_medal,by=c('state_abbv'='STATE'))
 

 addresses<-unique(new_map$address)
 new_map$geometry<-NULL


states <- geojsonio::geojson_read("gz_2010_us_040_00_500k.json", what = "sp")
colnames(new_map)[3]="NAME"

s<-merge(x=states,y=new_map,by='NAME',all.x=TRUE)




#Create a final spatialPolygonsDataframe to create map

require(sp)
final_table<-merge(states,s,by="NAME")



 ###making map interactive using leaflet
 
 
 
 bins<-c(0,10,20,50,100,500,1000)    #Create a color palette with Bins
 pal<-colorBin("BuPu" ,domain=final_table,bins =bins)
 
 
 labels <- paste(                   #Create a label with state name and their number one famous beer
   final_table@data$NAME,"
", final_table@data$beer ) %>% lapply(htmltools::HTML) m<-leaflet(final_table)%>% setView(-96, 37.8, 4)%>% addProviderTiles(providers$Stamen.Toner)%>% addPolygons( data=final_table, weight=1, color="#660000", smoothFactor=1, dashArray=3, fillOpacity=0.7) m <- m %>% addPolygons( fillColor = ~pal(n), weight = 2, opacity = 1, color = "black", dashArray = "3", fillOpacity = 0.7, highlight = highlightOptions( weight = 5, color = "#660000", dashArray = "", fillOpacity = 0.7, bringToFront = TRUE), label = labels, labelOptions = labelOptions( style = list("font-weight" = "normal", padding = "3px 8px"), textsize = "15px", direction = "auto")) m %>% addLegend(pal = pal, values = ~n, opacity = 0.7, title = "Total medal and their famous beer", position = "bottomright") ``` column -------------------- ### beer types ```{r,fig.width= 9} beer_type <- sqldf("select new_cat,count(*) as n from beer_awards where new_cat != 'Other' group by new_cat order by n desc limit 5") beer_type <- unique(beer_type$new_cat) plot3 <- beer_awards %>% filter(new_cat %in% beer_type) %>% group_by(new_cat) %>% count(new_cat) %>% ggplot(aes(x =reorder(new_cat,n),y=n,width=0.75)) + geom_bar(stat = 'identity',fill='#42c20c') + labs(title = "Most awarded beer types (1987-2020)", x ='Beer Type', y = "Number of Medal Awards", caption = "source = Great American Beer Festival", fill = 'Medal') + theme_minimal() + theme( panel.grid.major = element_blank(), panel.grid.minor = element_blank(), axis.text = element_text(size = 10), axis.title = element_text(size = 8), plot.caption = element_text( size = 8), plot.title = element_text(size = 14), plot.subtitle = element_text(size = 12), legend.title = element_text(size = 12), legend.text = element_text(size = 8), axis.line.x = element_line(size = 0.5, linetype = "solid", colour = "black"), axis.line.y = element_line(size = 0.5, linetype = "solid", colour = "black"), plot.background = element_rect(fill = "#ffffff"), axis.title.x = element_text(size =12,face='bold'), axis.title.y = element_text(size =12,face='bold') #strip.text.y = element_blank(), #I left this in because of color blind people ) + coord_flip() plot3 ``` ### map ```{r,fig.height= 8,fig.width= 8, fig.fullwidth=TRUE} plot10<- ggplot()+ theme_bw()+ geom_sf(data = states_sf,fill='#ffffff',size = 0.05)+ geom_sf(data = df_plot1,aes(fill=n))+ geom_sf_text(data = df_plot1,aes(label=state_abbv),size=2)+ scale_fill_gradient(low = "#e5ffcc", high = "#3d700b", na.value = NA)+ facet_wrap(~new_cat,ncol = 2)+ coord_sf(datum = NA)+ labs(title = 'Total number of Medals won by breweries in each state (1987-2020)\nbased on beer types', x=element_blank(),y=element_blank(),fill='Medals won\nscale')+ theme(strip.text.x = element_text(size = 12,face = 'bold')) plot10 ```